main() {
  // 1. 创建对象
  Cat c1 = new Cat(name: '小白', age: 10, sex: '母', color: '灰色');


  // 2. 调用属性
  print(c1.name);
  print(c1.age);
  print(c1.sex);
  print(c1.color);
  // 3. 调用方法
  c1.meow();
  // 4. 调用父类方法
  c1.printInfo();
}

// 定义一个动物父类
class Animal {
  // 定义属性
  String name = '动物';
  int? age = 0;
  String? sex = '未知';

  // 定义方法
  void printInfo() {
    print('这是一个动物');
  }

  // 构造函数
  Animal({required this.name, this.age, this.sex});
}

// 定义一个猫类，继承动物类
class Cat extends Animal {
  // 定义属性
  String? color = '白色';

  Cat({required super.name, super.age, super.sex, this.color});

  // 重写父类方法
  @override
  void printInfo() {
    print('这是一个猫');
  }
  // 定义一个方法
  void meow() {
    print('喵喵');
  }
}
